#ifndef _NEPTUNER_UBOAT_H_
#define _NEPTUNER_UBOAT_H_

#include "Ark.h"
#include "Scuba.h"
#include "Radar.h"

#include<string>
#include<vector>
#include<iostream>
#include<fstream>

class UBoat
{
public:
	UBoat();
	void navigate(std::string sSourceDir, std::string sOutputDir, std::string sExtIncDir);

public:
	Radar*	m_pxRadar;
	ScubaPack*	m_pxScubaPack;
	std::string	m_sScriptSourceDir;
	std::vector<std::string>	m_asExclude;
	std::vector<std::string>	m_asInclude;
	std::vector<std::string>	m_asFileType;
	bool	m_bRecurseIncludes;			

	void buildInputFileList();
	void parseInputFiles(std::string sExtIncDir);
	void createOutputFiles(std::string sOutputDir);
	void scanDir(std::string sSourceDir);

	void createCodebaseHomePage();
	void createUBoatPages(std::string sOutputDir);
	void createSubmarinePages();
	void deployApplication();
};

#endif 